package com.zut.service.impl;

import com.zut.dao.CourseDao;
import com.zut.dao.impl.CourseDaoImpl;
import com.zut.entity.Course;
import com.zut.service.CourseService;

import java.util.List;

/**
 * 课程业务实现类
 */
public class CourseServiceImpl implements CourseService {

    //创建一个课程的持久层对象
    private CourseDao cd = new CourseDaoImpl();


    /**
     * 添加课程
     *      1、 根据名称查询
     *
     *      2、根据查询结果进行判断
     *            不重复：添加,返回true
     *            重复 返回false
     * @param cname
     * @return
     */
    @Override
    public boolean addCourse(String cname) {

        //调用根据课程名称精确查询的持久层方法
        Course course = cd.findCourseByCname(cname);

        if(course!=null){//重复
            return false;
        }

        //添加课程
        cd.addCourse(cname);
        return true;
    }

    /**
     * 查询全部课程
     * @return
     */
    @Override
    public List<Course> findAllCourse() {
        return cd.findAllCourse();
    }

    /**
     * 模糊查询课程
     * @param cname
     * @return
     */
    @Override
    public List<Course> findCourseLikeCname(String cname) {
        return cd.findCourseLikeCname("%"+cname+"%");
    }

    /**
     * 修改课程名称
     * @param cid
     * @param newcname
     * @return
     */
    @Override
    public boolean updateCourse(String cid, String newcname) {

        //根据课程名称查询
        Course course = cd.findCourseByCname(newcname);

        if(course!=null){
            return false;
        }

        //添加
        cd.updateCourse(cid,newcname);

        return true;
    }

    /**
     * 删除课程
     * @param cid
     */
    @Override
    public void deleteCourse(String cid) {

        cd.deleteCourseById(cid);
    }

    /**
     * 根据教师编号查询课程
     * @param tid
     * @return
     */
    @Override
    public Course findCourseByTid(String tid) {
        return cd.findCourseByTid(tid);
    }
}
